home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / c / sozobon / sozlib15.zoo / sozdistr / include / xdlibs / mintbind.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-08-19  |  9.1 KB  |  253 lines

  1. /*
  2.  * @(#)mintbind.h, SozobonX XdLibs (c) jerry g geiger 1995
  3.  *
  4.  * Mnemonic names for MiNT operating system calls
  5.  * based on original mintbind.h (c) by Atari
  6.  * up to MiNT v 1.12
  7.  * last change
  8.  *  -VS: 1995/08/19
  9.  */
  10.  
  11. #ifndef _MINTBIND_H
  12. #define _MINTBIND_H
  13.  
  14.  
  15. #ifdef __MSHORT__
  16.  
  17. extern    long    gemdos(short, ...);
  18. extern    long    bios(short, ...);
  19. extern    long    xbios(short, ...);
  20. extern    short    bdos(short, ...);
  21.  
  22. #ifndef _TOSBIND_H
  23. #define trap_1_w(n)            gemdos(n)
  24. #define trap_1_wl(n,a)            gemdos(n, (long)(a))
  25. #define trap_1_wll(n, a, b)        gemdos(n, (long)(a), (long)(b))
  26. #define trap_1_ww(n,a)            gemdos(n, (short)(a))
  27. #define trap_1_www(n,a,b)        gemdos(n, (short)(a), (short)(b))
  28. #define trap_1_wwlll(n,a,b,c,d)     gemdos(n, a, (long)(b), (long)(c), (long)(d))
  29. #define trap_1_wwll(n, a, b, c)        gemdos(n, a, (long)(b), (long)(c))
  30. #define trap_1_wlw(n, a, b)        gemdos(n, (long)(a), (short)(b))
  31. #define trap_1_wlww(n, a, b, c)        gemdos(n, (long)(a), (short)(b), (short)(c))
  32. #define trap_13_w(n)            bios(n)
  33. #define trap_14_w(n)            xbios(n)
  34. #endif /* _TOSBIND_H */
  35.  
  36. #define trap_1_wwlw(n,a,b,c)        gemdos(n, (short)(a), (long)(b), (short)(c))
  37. #define trap_1_wwww(n,a,b,c)        gemdos(n, (short)(a), (short)(b), (short)(c))
  38. #define trap_1_wwl(n, a, b)        gemdos(n, (short)(a), (long)(b))
  39. #define trap_1_wwwl(n,a,b,c)        gemdos(n, (short)(a), (short)(b), (long)(c))
  40. #define trap_1_wwllll(n,a,b,c,d,e)    gemdos(n, (short)(a), (short)(b), \
  41.                         (long)(c), (long)(d), (long)(e))
  42. #define trap_1_wllw(n, a, b, c)        gemdos(n, (long)(a), (long)(b), (short)(c))
  43.  
  44. #else
  45.  
  46. #ifndef _TOSBIND_H
  47. extern    long    trap_1_w(short n);
  48. extern    long    trap_1_wl(short n, long a);
  49. extern    long    trap_1_wll(short n, long a, long b);
  50. extern    long    trap_1_ww(short n, short a);
  51. extern    long    trap_1_www(short n, short a, short b);
  52. extern    long    trap_1_wwlll(short n, short a, long b, long c, long d);
  53. extern    long    trap_1_wwll(short n, short a, long b, long c);
  54. extern    long    trap_1_wlw(short n, long a, short b);
  55. extern    long    trap_1_wlww(short n, long a, short b, short c);
  56. extern    long    trap_13_w(short n);
  57. extern    long    trap_14_w(short n);
  58. #endif /* _TOSBIND_H */
  59.  
  60. extern    long    trap_1_wwlw(short c, short a, long b, short c);
  61. extern    long    trap_1_wwww(short c, short a, short b, short c);    
  62. extern    long    trap_1_wwl(short n, short a, long b);
  63. extern    long    trap_1_wwwl(short n, short b, short c, long l);
  64. extern    long    trap_1_wwllll(short n, short a, short b, long c, long d, long e);
  65. extern    long    trap_1_wllw(short n, long a, long b, short c);
  66.  
  67. #endif /* __MSHORT__ */
  68.  
  69. /* note: none of these functions is declared as (void), despite
  70.  * what the man pages say; this is so that programs can check
  71.  * for a -32 return error from TOS if MiNT is not installed
  72.  */
  73.  
  74. #define    Syield()                        \
  75.         (short)trap_1_w(0xff)
  76. #define Fpipe(ptr)                        \
  77.         (short)trap_1_wl(0x100, (long)(ptr))
  78. #define Fcntl(f, arg, cmd)                    \
  79.         trap_1_wwlw(0x104, (short)(f), (long)(arg), (short)(cmd))
  80. #define Finstat(f)                        \
  81.         trap_1_ww(0x105, (short)(f))
  82. #define Foutstat(f)                        \
  83.         trap_1_ww(0x106, (short)(f))
  84. #define Fgetchar(f, mode)                    \
  85.         trap_1_www(0x107, (short)(f), (short)(mode))
  86. #define Fputchar(f, ch, mode)                    \
  87.         trap_1_wwlw(0x108, (short)(f), (long)(ch), (short)(mode))
  88.  
  89. #define Pwait()                            \
  90.         trap_1_w(0x109)
  91. #define Pnice(delta)                        \
  92.         (short)trap_1_ww(0x10a, (short)(delta))
  93. #define Pgetpid()                        \
  94.         (short)trap_1_w(0x10b)
  95. #define Pgetppid()                        \
  96.         (short)trap_1_w(0x10c)
  97. #define Pgetpgrp()                        \
  98.         (short)trap_1_w(0x10d)
  99. #define Psetpgrp(pid, grp)                    \
  100.         (short)trap_1_www(0x10e, (short)(pid), (short)(grp))
  101. #define Pgetuid()                        \
  102.         (short)trap_1_w(0x10f)
  103. #define Psetuid(id)                        \
  104.         (short)trap_1_ww(0x110, (short)(id))
  105. #define Pkill(pid, sig)                        \
  106.         (short)trap_1_www(0x111, (short)(pid), (short)(sig))
  107. #define Psignal(sig, handler)                    \
  108.         trap_1_wwl(0x112, (short)(sig), (long)(handler))
  109. #define Pvfork()                        \
  110.         (short)trap_1_w(0x113)
  111. #define Pgetgid()                        \
  112.         (short)trap_1_w(0x114)
  113. #define Psetgid(id)                        \
  114.         (short)trap_1_ww(0x115, (short)(id))
  115. #define Psigblock(mask)                        \
  116.         trap_1_wl(0x116, (unsigned long)(mask))
  117. #define Psigsetmask(mask)                    \
  118.         trap_1_wl(0x117, (unsigned long)(mask))
  119. #define Pusrval(arg)                        \
  120.         trap_1_wl(0x118, (long)(arg))
  121. #define Pdomain(arg)                        \
  122.         (short)trap_1_ww(0x119, (short)(arg))
  123. #define Psigreturn()                        \
  124.         (short)trap_1_w(0x11a)
  125. #define Pfork()                            \
  126.         (short)trap_1_w(0x11b)
  127. #define Pwait3(flag, rusage)                    \
  128.         trap_1_wwl(0x11c, (short)(flag), (long)(rusage))
  129. #define Fselect(time, rfd, wfd, xfd)                \
  130.         (short)trap_1_wwlll(0x11d, (unsigned short)(time), (long)(rfd), \
  131.                 (long)(wfd), (long)(xfd))
  132. #define Prusage(rsp)                        \
  133.         (short)trap_1_wl(0x11e, (long)(rsp))
  134. #define Psetlimit(i, val)                    \
  135.         trap_1_wwl(0x11f, (short)(i), (long)(val))
  136.  
  137. #define Talarm(sec)                        \
  138.         trap_1_wl(0x120, (long)(sec))
  139. #define Pause()                            \
  140.         (short)trap_1_w(0x121)
  141. #define Sysconf(n)                        \
  142.         trap_1_ww(0x122, (short)(n))
  143. #define Psigpending()                        \
  144.         trap_1_w(0x123)
  145. #define Dpathconf(name, which)                    \
  146.         trap_1_wlw(0x124, (long)(name), (short)(which))
  147.  
  148. #define Pmsg(mode, mbox, msg)                    \
  149.         trap_1_wwll(0x125, (short)(mode), (long)(mbox), (long)(msg))
  150. #define Fmidipipe(pid, in, out)                    \
  151.         trap_1_wwww(0x126, (short)(pid), (short)(in),(short)(out))
  152. #define Prenice(pid, delta)                    \
  153.         (short)trap_1_www(0x127, (short)(pid), (short)(delta))
  154. #define Dopendir(name, flag)                    \
  155.         trap_1_wlw(0x128, (long)(name), (short)(flag))
  156. #define Dreaddir(len, handle, buf)                \
  157.         trap_1_wwll(0x129, (short)(len), (long)(handle), (long)(buf))
  158. #define Drewinddir(handle)                    \
  159.         trap_1_wl(0x12a, (long)(handle))
  160. #define Dclosedir(handle)                    \
  161.         trap_1_wl(0x12b, (long)(handle))
  162. #define Fxattr(flag, name, buf)                    \
  163.         trap_1_wwll(0x12c, (short)(flag), (long)(name), (long)(buf))
  164. #define Flink(old, new)                        \
  165.         trap_1_wll(0x12d, (long)(old), (long)(new))
  166. #define Fsymlink(old, new)                    \
  167.         trap_1_wll(0x12e, (long)(old), (long)(new))
  168. #define Freadlink(siz, buf, linknm)                \
  169.         trap_1_wwll(0x12f, (short)(siz), (long)(buf), (long)(linknm))
  170. #define Dcntl(cmd, name, arg)                    \
  171.         trap_1_wwll(0x130, (short)(cmd), (long)(name), (long)(arg))
  172. #define Fchown(name, uid, gid)                    \
  173.         trap_1_wlww(0x131, (long)(name), (short)(uid), (short)(gid))
  174. #define Fchmod(name, mode)                    \
  175.         trap_1_wlw(0x132, (long)(name), (short)(mode))
  176. #define Pumask(mask)                        \
  177.         (short)trap_1_ww(0x133, (short)(mask))
  178. #define Psemaphore(mode, id, tmout)                \
  179.         trap_1_wwll(0x134, (short)(mode), (long)(id), (long)(tmout))
  180. #define Dlock(mode, drive)                    \
  181.         trap_1_www(0x135, (short)(mode), (short)(drive))
  182. #define Psigpause(mask)                        \
  183.         (short)trap_1_wl(0x136, (unsigned long)(mask))
  184. #define Psigaction(sig, act, oact)                \
  185.         trap_1_wwll(0x137, (short)(sig), (long)(act), (long)(oact))
  186.     /* new 0.94 PL 12    */
  187. #define Pgeteuid()                        \
  188.         (short)trap_1_w(0x138)
  189. #define Pgetegid()                        \
  190.         (short)trap_1_w(0x139)
  191.     /* new 0.96 PL 3    */
  192. /* if there are terminated children, clean up and return their info:
  193.  * <pid><exitcode> if rusage fill in the values *rusage
  194.  * if there are children, but still running, wait for them;
  195.  * if there are no children, return an error
  196.  */
  197. #define Pwaitpid(pid, nohang, rsp) \
  198.         (long)trap_1_wwwl(0x13a, (short)pid, (short)nohang, (long*)rsp)
  199.     /* new 0.96 PL 13    */
  200. #define Dgetcwd(path, dev, size) \
  201.         (long)trap_1_wlww(0x13b, (char *)path, short(dev), (short)size)
  202.     /* new 0.97 PL 2    */
  203. #define Salert(string) \
  204.         (long)trap_1_wl(0x13c, (char *)string)
  205.     /* new 1.10 PL 2    */
  206.     /* alarm < 0 : only return cur alarm = 0: cancel, millisec    */
  207. #define Tmalarm(alarm) \
  208.         (long)trap_1_wl(0x13d, (long)alarm)
  209.     /* new 1.11    */
  210. /*
  211.  * p_sigintr: Set an exception vector to send us the specified signal.
  212.  */
  213. #define Psigintr(vec, sig) \
  214.         (long)trap_1_www(0x13e, (short)vec, (short)sig)
  215. #define Suptime(cur_uptime, loadaverage) \
  216.         (long)trap_1_wll(0x13f,(long*)cur_uptime, (long*)loadaverage)
  217. #define Dxreaddir(len, handle, buf, xattr, xret) \
  218.         (long)trap_1_wwllll(0x142, (short)len, (long)handle, \
  219.                     (char *)buf, (struct Xattr*)xattr, (long*)xret)
  220. #define Pseteuid(eid) \
  221.         (long)trap_1_ww(0x143, (short)eid)
  222. #define Psetegid(egid) \
  223.         (short)trap_1_ww(0x144, (short)egid)
  224.     /* audit user id functions    */
  225. #define Pgetauid() \
  226.         (long)trap_1_w(0x145)
  227. #define Psetauid(id) \
  228.         (long)trap_1_ww(0x146, (short)id)
  229. #define Pgetgroups(gidsetlen, gidset) \
  230.         (short)trap_1_wwl(0x147, (short)gidsetlen, (long*)gidset)
  231. #define Psetgroups(gidsetlen, gidset) \
  232.         (short)trap_1_wwl(0x148, (short)gidsetlen, (long*)gidset)
  233. /*
  234.  * t_setitimer(which, interval, value, ointerval, ovalue):
  235.  * schedule an interval timer
  236.  * which is ITIMER_REAL (0) for SIGALRM, ITIMER_VIRTUAL (1) for SIGVTALRM,
  237.  * or ITIMER_PROF (2) for SIGPROF.
  238.  * the rest of the parameters are pointers to millisecond values.
  239.  * interval is the value to which the timer will be reset
  240.  * value is the current timer value
  241.  * ointerval and ovalue are the previous values
  242.  */
  243. #define Tsetitimer(which, interval, value, ointerval, ovalue) \
  244.         (short)trap_1_wwllll(0x149, (short)which, (long*)interval,\
  245.                 (long*)value, (long*)ointerval, (long*)ovalue)
  246.     /* new 1.12    */
  247. #define Dreadlabel(path, label, size) \
  248.         (long)trap_1_wllw(0x152, (char *)path, (char *)label, (short)size)
  249. #define Dwritelabel(path, label) \
  250.         (long)trap_1_wll(0x153, (char *)path, (char *)label)
  251.  
  252. #endif /* _MINTBIND_H */
  253.